The present application describes systems and techniques relating to client-server communication.
A client-server environment is a network architecture in which clients generally rely on servers for resources, such as files, databases, devices, processing power, etc. The World Wide Web and its associated Web servers and Web browsers are a typical example of a client-server environment using an existing underlying network (e.g., the Internet) for communications. In a client-server environment, a page can be sent to a client, such as in the form of a Hypertext Markup Language (HTML) page, and processed at the client to generate a display (e.g., a window presenting the rendered page). A page delivered to a client can include multiple frames, embedded functionality (e.g., scripts), and/or references to additional network resources, which may be used in constructing a visual display at the client based on the transmitted page. For example, the references may be links to additional pages, which may be dynamically generated by various servers, that are retrieved by the client to populate the frames specified by a first page.
Typically, a client requests a page from a server, the server retrieves or generates the page and sends it to the client, and the client renders the page for display. When the page includes multiple frames, rendering the page at the client generally involves creating a visual layout as designated by the frames and retrieving additional pages over the network as specified by the previously received page. Thus, a single page can be used to orchestrate retrieval and display of multiple pages in a single browser window. The client establishes multiple connections to one or more servers in order to obtain all the information needed for display, although typically, the client can only open a limited number of full connections (e.g., 2-4) to a server at a time. In some network scenarios, such as in satellite communication, the cost of each connection can be large.
Moreover, the frames specified in a first page and the additional pages retrieved according to the frames can present a user interface that enables a user to interact with the displayed information and/or network resources. For example, the additional pages presented in the frames can include and/or refer to applications that display, and allow a user to interact with, information from any data source (e.g., enterprise systems, databases, Internet servers, etc.), thus allowing multiple business functions to be performed through a single integrated view in a browser. The displayed information can be in any format (e.g., texts, figures, graphs, reports, tables, charts, etc.).